#include <string>
#include <stdio.h>
#include "hi_mapi_ao.h"
#include "hi_mapi_ao_define.h"
#include "hi_mapi_sys.h"
#include "HiMediaSystem.h"
#include "HiAudio.h"


HiAudio::HiAudio()
{

}

HiAudio::~HiAudio()
{
}

 HI_S32 HiAudio::Open(HI_HANDLE aoDev, HI_HANDLE aoChn)
{
    HI_S32 ret = HI_SUCCESS;
    HI_MAPI_AO_ATTR_S stAoAttr;
    memset(&stAoAttr, 0x00, sizeof(stAoAttr));

    stAoAttr.enSampleRate = AUDIO_SAMPLE_RATE_48000;
    stAoAttr.enBitwidth = AUDIO_BIT_WIDTH_16;
    stAoAttr.enSoundMode = AUDIO_SOUND_MODE_STEREO;
    stAoAttr.enWorkmode = AIO_MODE_I2S_MASTER;
    stAoAttr.u32PtNumPerFrm = 1024;
    stAoAttr.enInSampleRate = AUDIO_SAMPLE_RATE_48000;
    stAoAttr.enI2sType = AIO_I2STYPE_INNERHDMI;
    stAoAttr.enTrackMode = AUDIO_TRACK_NORMAL;

    ret = HI_MAPI_AO_Init(aoDev, &stAoAttr);
    if(ret != HI_SUCCESS) {
        printf("HI_MAPI_AO_Init err\n");
        return HI_FAILURE;
    }
    ret = HI_MAPI_AO_Start(aoDev, aoChn);
    if(ret != HI_SUCCESS) {
        printf("HI_MAPI_AO_Start err\n");
        HI_MAPI_AO_Deinit(aoDev);
        return HI_FAILURE;
    }
    return ret;


}


 HI_S32 HiAudio::Close(HI_HANDLE aoDev, HI_HANDLE aoChn)
{
    HI_S32 ret = HI_SUCCESS;
    ret |= HI_MAPI_AO_Stop(aoDev, aoChn);
    ret |= HI_MAPI_AO_Deinit(aoDev);
    return ret;

}

